1. Field of the Invention
Certain embodiments of the present invention are directed generally to methods for managing flow of datagram traffic across a data distribution network. Certain other embodiments of the present invention are directed generally at methods for controlling congestion in data distribution networks. Further, additional embodiments of the present invention are directed generally to devices and systems for implementing the above-discussed methods.
2. Description of the Related Art
According to modern telecommunications networks, datagrams such as, for example, packets, cells, and bit strings, can be commonly distributed from one node, module, or device (generally referred to herebelow as network devices) on a network to one or more other network devices. During the distribution of such datagrams, the ingresses and egresses of the network devices that assist in the distribution and/or forwarding of datagrams often get congested or clogged due to over-subscription. Two examples of how over-subscription can affect a data distribution network device are shown in FIGS. 1 and 2, respectively.
FIG. 1 illustrates device D1 and device D2 that are operably connected to each other. Device D1 has ports P1-P6 that may each function as ingresses and/or egresses of datagrams from and/or to other network device (not illustrated in FIG. 1) into device D1. Device D1 also has a port P7 through which datagrams in device D1 may egress device D1 towards device D2 and through which datagrams in device D2 may ingress into device D1.
Port P7 on device D1 is operably connected to port P8 that may function as an ingress for device D2 illustrated in FIG. 1. Device D2 includes additional ports P9-P14 through which datagrams that enter through port P8 may egress from device D2 and through which device D2 may communicate with other network devices (not illustrated in FIG. 1).
According to the related art devices illustrated in FIG. 1, port P5 on device D1 and port P14 on device D2 may both wish to simultaneously transmit datagrams to port P13 on device D2. Under such circumstances, datagrams from port P5 travel through port P7 of device D1 and through port P8 of device D2 before arriving at port P13.
When, as shown in FIG. 1, a pathway 100 between port P7 and port P8 is capable of supporting a flow of datagrams higher than either port P5 or port P13 would be able to accommodate individually, pathway 100 between port P7 and port P8 may be used as or replaced with a high-speed and/or high-capacity pathway that can support a high volume of datagram traffic. In fact, under ideal situations, a high-speed/capacity pathway is able to support flow of datagrams between many different ports on device D1 and device D2, all simultaneously.
It should be noted that the pathways discussed herein are generally not physical connections. Rather, these pathways often are made up of a series of data distribution devices, such as, for example, routers and switches, that, at least for a brief period of time, allow a datagram to travel from a source to a destination on a network.
Because, in FIG. 1, ports P1-P6 and P9-P12 all have the same capacity for allowing datagrams to ingress/egress devices D1 and D2, port P13 is over-subscribed because it is simultaneously receiving full-streams of datagrams from both port P14 and port P5, thereby exceeding port P13's capacity for egressing received datagrams. Once this over-subscription condition on P13 is detected in device D2, according to the related art, a “pause” frame is sent to port P8 and port P14 within device D2.
Once port P8 receives the “pause” frame, the pathway between related art network devices D1 and D2 is effectively blocked, at least for a short time interval. This is true because, in the “paused” condition, port P8 will not accept datagrams from port P7.
Once the pathway is effectively blocked between devices D1 and D2, if port P2 on device D1 and port P10 on device D2 try to exchange datagrams, the datagram exchange would not be possible. Hence, even though, in the related art example illustrated in FIG. 1, neither port P2 nor port P10 are over-subscribed, and even though there may be available bandwidth on the pathway between port P7 and port P8 which link devices D1 and D2, the “pause” frame emitted as a result of the over-subscription of port P13 has affectively shut down all communications between devices D1 and D2.
Hence, there is a need for devices, systems, and methods that prevent the over-subscription of one port on one network device from effectively shutting down either a portion of or an entire data distribution network. In other words, there is a need for better flow control of datagrams over data distribution networks.
FIG. 2 illustrates how related art devices D1 and D2 illustrated in FIG. 1 deal with an over-subscription condition on one their ports in a different manner. As in FIG. 1, port P13 in FIG. 2 is again over-subscribed because port P13 is receiving more datagrams from port P14 and port P5, via port P7 and port P8 that are connected via a high-speed/capacity pathway, than P13 can allow to egress.
In contrast to FIG. 1, in the over-subscribed condition illustrated in FIG. 2, port P13 does not send out a “pause” control frame. Rather, the first device D1 detects the over-subscription of port P13 and reacts accordingly by only allowing portions of the datagrams sent from ports P14 and P5 to reach port P13.
More specifically, in a situation illustrated in FIG. 2 where, for example, port P5 on device D1 is transmitting one Gigabit (“one Gig”) of datagrams, port P14 on device D2 is transmitting one Gig of datagrams, and port P13 is only capable of egressing one Gig of datagrams, port P8 allows only, for example, half of the datagrams received from port P5 to travel to port P13. In such an example, if port P14 is similarly restricted (generally by internal components of the device D2) to only being able to forward half a Gig of datagrams to port P13, port P13 will receive the one Gig of datagrams that it can egress, and half of the datagrams received at port P8 will be dropped/lost at port P8.
Clearly, dropping of datagrams anywhere in a data distribution network is a non-ideal and non-desirable condition. Further, it is even more non-desirable for an extra half Gig of datagrams to travel between port P7 and port P8 when this half Gig of datagrams cannot be supported by port P13. This is true at least because the extra datagrams only serve to additionally congest the pathway between device D1 and device D2, which could be more effectively used by datagrams having other sources and destinations.
Hence, what is also needed are methods and devices for reducing the amount of congestion that is present in high-speed/capacity pathways between network devices. In addition, there is also a need for methods and devices that can halt the forwarding of unusable datagrams as early as possible.